#!/bin/sh
##################################################################
#钟建军
#2023/01/30
#
#从参数1（远程ETL服务器ip）上，根据参数2（ETL日志文件全路径名）和参数3（页数）获取日志内容
#
##################################################################
usage(){
	echo "Usage : getEtlLogText.sh remoteIP logfile [pageindex]"
	echo "   eg.: getEtlLogText.sh 30.3.3.111 ma_job/ma_jobmain_10002_20230201.info 3"
	echo "  含义： 读取服务器30.3.3.111上的ETL日志文件ma_job/ma_jobmain_10002_20230201.info的第3页内容(每页默认500行)."
	exit -1
}
#参数检查或帮助显示
[ $# -eq 0 ] && usage
[ $1 == "-h" -o $1 == "--help" -o $# -lt 2 ] && usage


ipaddr=$1
logfile=$2
pageindex=$3

etlpath=/home/ftpapp/FTP_Engine/
pagesize=500
[ ! $pageindex ] && pageindex=1
[ $pageindex -le 0 ] && pageindex=1
etlpath_tmp=`ssh $ipaddr source '.bash_profile; echo $ETLPATH'`
[ $etlpath_tmp ] && etlpath=$etlpath_tmp

basedir=$etlpath/log/
let headtotal=pagesize*pageindex

result=`ssh -q $ipaddr "ls $basedir/$logfile > /dev/null 2>&1 ; "'echo $?'`
let final_pagesize=pagesize
if [ ${result} -eq 0 ];then
    totalcnt=`ssh -q $ipaddr "wc -l $basedir/$logfile|cut -d ' ' -f 1"`
    if [ ${headtotal} -gt ${totalcnt} ];then
        #let final_pagesize=$((totalcnt%pagesize))
        let final_pagesize=totalcnt-headtotal+pagesize
        [ $final_pagesize -le 0 ] && final_pagesize=0
    fi
    ssh -q $ipaddr "head -$headtotal $basedir/$logfile | tail -$final_pagesize"
elif [ ${result} -eq 2 ];then
    echo '在服务器['$ipaddr']上不存在日志文件['$basedir'/'$logfile']'
else
    echo '在服务器['$ipaddr']上检查日志文件['$basedir'/'$logfile']错误，错误码:'${result}
fi
exit ${result}
